'''
@Project ：my_python_project 
@File    ：configparser模块.py
@IDE     ：PyCharm 
@Author  ：xionglinhui
@Date    ：2024/9/10 上午9:11 
'''

import configparser


'''1.创建配置对象：创建一个ConfigParser对象'''
config = configparser.ConfigParser()
print('1:', config) # <configparser.ConfigParser object at 0x7fc1574a6dd8>

'''2.读取配置文件：使用read方法读取配置文件'''
config.read('test.ini')

'''3.获取配置项：获取sections'''
print('3:', config.sections())  # 打印：['section1', 'section2']

'''4.获取某一个section下的所有options'''
print('4:', config.options('section1'))

'''5.获取items'''
print('5.1:',config.items() )
print('5.2:',config.items('section1') )

'''6.获取items的某项信息'''
print('6:', config.get('section1', 'user'))

'''7.获取items的某项信息'''
# res = config.get('section1', 'age')
# res1 = int(config.get('section1', 'age'))
# print(res, type(res))  # 18 <class 'str'>

#日常中我们获取到的年龄需要转化为int类型，这里有现成的方法，如下
print('7.1:', config.getint('section1', 'age'))

print('7.2:', config.getfloat('section1', 'salary'))

print('7.3:', config.getboolean('section1', 'is_admin'))

'''8.使用set方法添加或修改配置项，但不会修改test.ini文件本身'''
config.set('section1', 'age', '20')
print('8:', config.getint('section1', 'age'))

'''9.写入配置文件：使用write方法将配置写入文件'''
# 在案例8的基础上，将age=18修改为age=20后，保存到新文件example.ini中
# 也可修改原文件，将example.ini替换为test.ini即可
with open('example.ini', 'w') as f:
    config.write(f)
